package negocio;

import java.awt.Point;

/**
 * Um hotspot é um caminho pelo qual os inimigos podem se mover. Sempre possui
 * dois pontos, um que marca o início e outro que marca o fim do trajeto (podem
 * ser iguais para indicar que o objeto deve ficar parado).
 * <p>
 * Todo cenário tem, além de uma imagem de fundo, um ou vários hotspots. Os
 * hotspots são linhas de ação. Os eventos que acontecem em um cenário, tal como
 * um objeto se mover, só podem ocorrer sobre os hotspots. Por isso os hotspots
 * sempre estão muito ligados ao cenário ao qual pertencem, senão algum
 * personagem poderia acabar andando fora do chão ou coisas do tipo.
 * <p>
 * Um inimigo também sempre deve saber sobre qual hotspot ele pode andar. Para
 * isso, os inimigos possuem um hotpoint. O hotpoint serve para dizer qual ponto
 * da imagem fica em contato com o hotspot. Isso ajuda a não acontecer coisas
 * como: colocar um inimigo para andar sobre uma linha e em vez disso ele ser
 * desenhado com a cabeça na linha (já que o início da imagem é na parte de
 * cima).
 */
public class HotSpot {

	public final Point inicio, fim;

	/**
	 * Cria um hotspot com os pontos de início e fim
	 * 
	 * @param inicio
	 *            o ponto inicial do trajeto
	 * @param fim
	 *            o ponto final do trajeto
	 */
	public HotSpot(Point inicio, Point fim) {
		this.inicio = inicio;
		this.fim = fim;
	}

	/**
	 * Cria um hotspot em que os pontos de início e fim são o mesmo (ideal para
	 * criar eventos que acontecem em um único lugar, como inimigos que ficam
	 * parados, por exemplo)
	 * 
	 * @param unico
	 *            o ponto inicial e final do hotspot
	 */
	public HotSpot(Point unico) {
		this.inicio = this.fim = unico;
	}

}
